Analyseur de Logs Serveur avec Visualisation (ElasticSearch & Kibana) 📊

Ce projet permet d'analyser des logs de serveur, comme Apache ou Nginx, Ă  l'aide d'ElasticSearch et de les visualiser dans Kibana. ElasticSearch permet d'indexer les logs pour une recherche rapide et Kibana fournit une interface graphique pour les analyser visuellement.

Fonctionnalités du Projet :

Pré-requis :

Installation d'ElasticSearch et Kibana :

  1. Installez ElasticSearch sur votre machine :
  2. sudo apt-get install elasticsearch
  3. Configurez ElasticSearch pour démarrer automatiquement :
  4. sudo systemctl enable elasticsearch && sudo systemctl start elasticsearch
  5. Installez Kibana :
  6. sudo apt-get install kibana
  7. Configurez Kibana pour qu'il se connecte à ElasticSearch, puis démarrez-le :
  8. sudo systemctl enable kibana && sudo systemctl start kibana

Pipeline de Collecte des Logs :

Nous utiliserons Filebeat pour transférer les logs des serveurs vers ElasticSearch.

  1. Installez Filebeat :
  2. sudo apt-get install filebeat
  3. Configurez Filebeat pour collecter les logs des services comme Apache ou Nginx :
  4. 
    filebeat.inputs:
    - type: log
      enabled: true
      paths:
        - /var/log/apache2/*.log
        - /var/log/nginx/*.log
                
  5. Configurez la sortie de Filebeat pour envoyer les données vers ElasticSearch :
  6. 
    output.elasticsearch:
      hosts: ["http://localhost:9200"]
                
  7. DĂ©marrez Filebeat :
  8. sudo systemctl start filebeat

Visualisation des Logs avec Kibana :

Accédez à Kibana via un navigateur en vous rendant à http://localhost:5601. Vous pourrez ensuite créer des visualisations et des tableaux de bord pour analyser les logs collectés.

Création d'un Tableau de Bord :

  1. Accédez à l'onglet "Visualize" dans Kibana.
  2. Créez des graphiques à partir des données des logs collectés (ex: histogrammes, diagrammes à secteurs).
  3. Enregistrez votre visualisation et créez un tableau de bord pour surveiller les performances de votre serveur en temps réel.

Code Python pour Automatiser l'Installation et la Configuration :

Voici un script Python pour automatiser l'installation de Filebeat et sa configuration :


import os

# Installation de Filebeat
def install_filebeat():
    os.system("sudo apt-get install filebeat -y")

# Configuration de Filebeat
def configure_filebeat(log_paths):
    config = f"""
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - {log_paths}
output.elasticsearch:
  hosts: ["http://localhost:9200"]
    """
    with open("/etc/filebeat/filebeat.yml", "w") as f:
        f.write(config)
    os.system("sudo systemctl start filebeat")

if __name__ == "__main__":
    log_paths = input("Entrez le chemin des logs (ex: /var/log/apache2/*.log): ")
    install_filebeat()
    configure_filebeat(log_paths)

Manuel d'Utilisation

🚀 Lancer le Script Python :

Pour automatiser l'installation et la configuration de Filebeat, exécutez simplement ce script :

python setup_filebeat.py

⚠ Avertissement Éthique :

Ce projet doit ĂȘtre utilisĂ© dans des contextes lĂ©gaux et Ă©thiques pour surveiller les performances de vos propres serveurs ou ceux pour lesquels vous avez obtenu une autorisation explicite. N'utilisez pas cet outil pour espionner ou surveiller des serveurs sans autorisation. đŸ“ŠđŸ›Ąïž